package com.tianbao54.kotlin_01

/**
 * kotlin 中的所有类默认情况下都是无法继承的。
 * 换句话说，在 kotlin 中 ， 所有类默认情况下都是 final 的
 * open 与 final 含义相反
 */

open class Parent(name: String, age: Int) {

}

/**
 * 继承用 '：'
 * 要用到继承，需要父类需要用 open..
 */
class Child(name: String, age: Int) : Parent(name, age) {

}

open class Parent2(name: String) {

}

/**
 * 在 kotlin 中，如果一个类没有 primary 构造方法，那么这个类的每个 secondary 构造方法需要用 super 关键字来初始化父类型，
 * 或通过其它的 secondary 构造方法来完成这个任务。
 * 不同的 secondary 构造方法可以调用父类不同的构造方法
 */
class Child2 : Parent2 {

    constructor(name: String): super(name) {

    }
}

fun main(args: Array<String>) {

}